System and method for adjusting end-effector actuation based on relative position with respect to gravitational force

ABSTRACT

A system and method for maneuvering a robotic end-effector using one or more motors that have a force limiter that is adaptable to take into account any effects of a changing gravitational force as the system moves. In one embodiment, the system includes an actuator, such as a drive motor, for applying a force vector to actuate a function of the end effector, such as moving the end-effector along a track that is attached to a contoured surface. Further, a force limiter coupled to the actuator is configured to interrupt the actuating if the force exceeds a first threshold. Further, the system includes an orientation detector to determine any changes in orientation with respect to gravity so as to adjust the force limit accordingly. Thus, if the force limiter determines that a threshold has been exceeded, the force limiter may limit or interrupt the motion while taking changing gravitational forces into account.

BACKGROUND

As manufacturing environments become more automated and complex,robotics and other automated machinery is becoming more and moreprevalent in all phases of manufacturing. Very specific tasks that areconventionally performed by a skilled artisan may be performed by highlyspecialized robotics having highly specialized end effectors. Forexample, drilling holes in composite sections of a contoured section ofan airplane wing may require a high level of precision with respect toapplying torque to a motor for moving the end effector around acontoured wing surface. A further example is the need to tightly controlthe actuation force applied to the wing section by the drill bit inorder to avoid compromising the wing itself.

In the past, a force limitation circuit or device has been employed tolimit the force applied by a moving motor or an end effector actuator.However, as large end-effector/motor housing machines move around acontoured surface, the effect of gravity on the package changes. Thus aforce required by the motor for moving the package upward along acontoured surface will be different than a force required for moving thesame package downward. Therefore, a single force limitation parameterwill not be sufficient for both scenarios.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects and many of the attendant advantages of the claims will becomemore readily appreciated as the same become better understood byreference to the following detailed description, when taken inconjunction with the accompanying drawings, wherein:

FIG. 1 shows a diagram of a track-mounted robotic manufacturing devicehaving an end-effector mounted to a moveable frame suited for engaging atrack system in a manufacturing environment according to an embodimentof the subject matter disclosed herein.

FIG. 2A-2C show a series of force diagrams having a relative directionof a force associated with an actuation direction of an end effector ofthe device of FIG. 1 over the course of time according to an embodimentof the subject matter disclosed herein.

FIG. 3 shows a block diagram of a control block for controlling theactuation force for moving a device or moving the end effector of thesystem of FIG. 1 according to an embodiment of the subject matterdisclosed herein.

FIG. 4 shows another block diagram of a control block for controllingthe actuation force for moving a device or moving the end effector ofthe system of FIG. 1 according to an embodiment of the subject matterdisclosed herein.

FIG. 5 shows a flow chart of a method for controlling the actuationforce for moving a device or moving the end effector of the system ofFIG. 1 according to an embodiment of the subject matter disclosedherein.

DETAILED DESCRIPTION

The following discussion is presented to enable a person skilled in theart to make and use the subject matter disclosed herein. The generalprinciples described herein may be applied to embodiments andapplications other than those detailed above without departing from thespirit and scope of the present detailed description. The presentdisclosure is not intended to be limited to the embodiments shown, butis to be accorded the widest scope consistent with the principles andfeatures disclosed or suggested herein.

The subject matter disclosed herein is directed to a system and methodfor maneuvering a robotic end-effector using one or more motors thathave a force limit that is adaptable to take into account any effects ofa changing gravitational force as the system moves. In one embodiment,the system includes an actuator, such as a drive motor, for applying aforce vector to actuate a function of the end effector, such as movingthe end-effector along a track that is attached to a contoured surfaceof a manufactured item (an airplane wing, for example). Further, theembodiment includes a force limitation device coupled to the actuatorand configured to interrupt the actuating if the force exceeds a firstthreshold. This is to ensure that if a foreign object is encountered,the force limiter may recognize a larger resistance in the motion paththan what is expected. This may be due to a person or tool being in themotion path. Thus, if the force limitation device determines that athreshold has been exceeded for the force to move the end-effector, theforce limitation device may interrupt the motion.

However, as foreshadowed in the background, as the orientation of theend-effector may change with respect to gravity, the force required tomaneuver the end-effector may change significantly as the end-effectoris typically heavy enough to affect the force required to move theend-effector “up” with respect to gravity as opposed to “down.” Thus, inan embodiment, an orientation detector coupled to the actuator isconfigured to detect a change in an angle between a gravitational vectoracting on the end effector and the force vector of the actuator. Withthis changing angle, an adjustor coupled to the force limitation deviceis configured to change the first threshold to a second threshold inresponse to the detected change in the angle. In this manner, thechanging effects of the gravitational vector may be accounted for in thedetermination of the force limitation.

In other embodiments, the force limitation adjustment may be applied toother functions of an end-effector. In the past, various highlyspecialized robotics having highly specialized end-effectors may be setto employ a high degree of tolerance in the force limitations formovements and actuations. That is, if a resistive force is encounteredthat exceeds an expected limitation, an error may be present such thatthe end-effector cannot perform the intended function e.g., a drill isnot positioned over plastic surface, but instead encounters a metalsurface that provides more resistance than expected. However, as theend-effector moves its orientation from, for example, vertical tohorizontal, the gravitational force adding to a downward drill motioncontributes to an overall limitation. But if the same machine ispositioned to drill horizontally, the same limitation will be differentat least by an amount equal to the weight of the end-effector. Thus, thegravitational force that affects the actuation force may lead todifferences the application of an actuation force for the end-effectormanufacturing device.

These and other aspects of the subject matter disclosed herein arebetter understood with respect to the descriptions of FIGS. 1-5 below.

FIG. 1 shows a diagram of a system 100 having track-mounted roboticmanufacturing device 105 having an end-effector 110 mounted to amoveable frame 125 suited for engaging a track-mount system 102 in amanufacturing environment according to an embodiment of the subjectmatter disclosed herein. As shown in this embodiment, the device 105includes a first motor 150 for moving the entire device 105 along thetrack 102. This motor 150 is referred to as an x-axis motor 150 and thetrack 102, although placed upon the contour of the underlyingmanufactured item 101 (in this embodiment, a jet engine 101). The“x-axis” is a curved contour path that follows the curve of the track102. Although this curved contour path is not an “axis” in the Cartesiansense, the relative relationship between the device 105 and the track102 remains static and colinear, thus the terminology “x-axis” is usedfor the path which the device 105 follows when travelling along thetrack 102. The x-axis motor 150 may be actuated in a forward-manner orreverse-manner for moving the movable frame along the “x-axis,” e.g.,the track 102.

Further, the device 105 includes a second motor 151 that may maneuverthe frame 125 and/or the end-effector 110 orthogonal to the x-axis. Thisdegree of movement is referred to as the y-axis. In this manner, thesecond motor 151 may be actuated to move the end-effector 110 along thesurface of the jet engine 101 in a direction orthogonal to the directiondefined by the track 102. Further yet, the device 105 includes a thirdmotor 152 hat may maneuver the frame 125 and/or the end-effector inmanner orthogonal to both x and y axes. This degree of movement isreferred to as the z-axis. In this manner, the third motor 152 may beactuated to maneuver the end-effector 110 away from or toward thesurface of the jet engine 101.

Each motor 150, 151, and 152 of the device 105 is associated with aforce limitation device (not shown in detail in FIG. 1) that isconfigured to limit the torque that each respective motor outputs. Thatis, the x-axis motor 150 includes an x-axis force limitation device, they-axis motor 151 includes a y-axis force limitation device, and z-axismotor 152 includes a z-axis force limitation device. The forcelimitation device is designed to interrupt the motor from actuatingshould the overall device encounter an obstruction.

Each motor 150, 151, and 152 of the device 105 is also associated withan accelerometer (not shown in detail in FIG. 1) that is configured todetermine changes in orientation of the device with respect to agravitational normal force. In one embodiment, the x-axis motor 150includes an x-axis accelerometer, the y-axis motor 151 includes a y-axisaccelerometer, and z-axis motor 152 includes a z-axis accelerometer. Inanother embodiment, the device 105 includes one single accelerometerfrom which each motor controller may access and receive signals.

FIGS. 2A-2C show a force diagrams with respect to an x-axis or a y-axisto illustrate the effect of a gravitational normal force against thex-axis motor force according to embodiments of the subject matter. FIG.2A corresponds to the forces associated with the device 105 of FIG. 1when at position A as shown in FIG. 1. FIG. 2B corresponds to the forcesassociated with the device 105 of FIG. 1 when at position B as shown inFIG. 1. FIG. 2C corresponds to the forces associated with the device 105of FIG. 1 when at position C as shown in FIG. 1. In each of thesediagrams, the gravitational normal force 201 is shown as expected with adownward force.

Thus, in reviewing the differing positions that the device 105 may be,FIG. 2A shows the device as if it were at the top of the jet engine 101at position A (FIG. 1). When in this position, the motor torque requiredto move the device along the x-axis is shown as force 202A. This forceis perpendicular to the gravitational normal force 201. Therefore, thegravitational normal force 201 does not add nor subtract from the x-axismotor force. Therefore, at position A, the gravitational normal forcedoes not affect the any force limitation that may be in place.

However, as the device 105 moves along the x-axis, the direction of thex-axis motor force begins to change. That is, the x-axis motor vector202A rotates toward the gravitational normal force 201 until position Bas shown in FIG. 2B and shown as x-axis motor vector 202B. As such, thex-axis motor vector is neither normal nor parallel to the gravitationalnormal force 201 and thus, the overall force needed to move the device105 is increased or decreased by a component of the magnitude of thegravitational normal force 201. Lastly, at position C, FIG. 2C shows thex-axis motor vector almost aligned with the gravitational normal force201 and thus, the overall force needed to move the device 105 isincreased or decreased by the entire magnitude of the gravitationalnormal force 201.

In a conventional device 105, a conventional force limitation devicethat does not account for the gravitational normal force 201 may allow alarger torque from the x-axis motor 150 as the device 105 moves fromposition A to B to C. If an obstruction is encountered, the force limitwill only be applied to the x-axis motor force. Thus, when the weight ofthe device 105 is added (i.e., the gravitational normal force 201), theresulting actual force is much greater than the intended limit.Therefore, as will be shown in the control systems of FIGS. 3 and 4, thegravitational normal force 201 is measured and considered when determinethe force limitation on each axis motor.

FIG. 3 shows a block diagram of a control block 300 for controlling theactuation force a motor or end effector of FIG. 1 according to anembodiment of the subject matter disclosed herein. In this embodiment ofFIG. 3, the controlled devices will be the x-axis motor 150 and y-axismotor 151. In this block diagram, a three-axis accelerometer 310provides signal conditioned voltage outputs 315 to a supervisorycontroller 320 (simply a controller 320, hereinafter). In thisembodiment, the accelerometer 310 measures acceleration with a minimumfull-scale range of ±3 g where: “g” is standard gravity=9.80665 m/s².and produces a control output voltage signal. In one embodiment, theaccelerometer 310 measures static acceleration of gravity intilt-sensing applications. In another embodiment, the accelerometer 310measures dynamic acceleration resulting from motion, shock, orvibration.

The controller 320 in the control block 300 is responsible for overallmanagement of the states and operations. The controller may includecircuitry and programming for handling the positioning of anend-effector, initiating and handling the functionality of theend-effector, communications with larger control systems responsible foran entire manufacturing line, as well as the functions currently beingdiscussed—the control of the motor for maneuvering the device 105 alonga track 102. The controller 320 may be configured to interface with themotion controllers, various discrete peripherals (analog and digital),as well as the pendant computing device 175 (as shown in FIG. 1) whichis used for human interaction with the device 105. The controller 320 isconfigured to receive one or more of the control signals from theaccelerometer 310.

The controller 320 includes a communication and control coupling to eachmotor drive controller under the control of the supervisory controller320. In the embodiment of FIG. 3, the controller is coupled to an x-axisdrive controller 330 as well as a y-axis motor drive controller 335.This communicatively coupling may be a serial communications connectionsuch as an RS-232 standard serial connection. In other embodiments, thiscommunicative coupling may be a parallel communication couplings or awired or wireless Ethernet coupling. In turn, each drive controller 330and 335 is respectively coupled to a drive (motor), e.g., the x-axisdrive controller 330 is coupled to the x-axis motor 150 and the y-axisdrive controller 335 is coupled to the y-axis motor 151.

In the embodiment of FIG. 3, the x-axis motor 150 and the y-axis motor151 are controlled by digital motion drive controllers 330 and 335,respectively that feature current, velocity, and position control loopsand a wide range of commutation types and position feedbacks. Positionfeedback may be provided by an internal optical incremental encoder (notshown) within the motor housing. Each motor may be driven based uponcommands from a respective drive controller 330, 335, which in turnreceives system-wide operational commands from the supervisorycontroller 320. Electrical power for the motors 150, 151 may be derivedfrom a system-wide DC or AC motor bus (not shown) which is conditionedby the drive controllers 330, 335.

Thus, the controller 320 receives control signals 315 from theaccelerometer 310 that influence the control signals from the controller320 sent to each respective drive controller 330, 335. If theaccelerometer 310 detects that the device 105 is moving from A-B-C (asshown in FIG. 1), or in any other manner where the direction of thex-axis motor force is changing with respect to the direction of thegravitational normal force, the controller 320 adjusts the forcelimitation device 325 so as to account for the changing angle betweenthese respective force vectors.

FIG. 3 is directed to an embodiment having two different motors andrespective drive controllers that are configured to move the overalldevice 105 in one of two cardinal directions (an x-axis and a y-axis).FIG. 4, described next, adds an additional direction of control.

FIG. 4 also shows a block diagram of a control block 400 for controllingthe actuation force a motor or end effector of FIG. 1 according to anembodiment of the subject matter disclosed herein. In this embodiment ofFIG. 4, the controlled devices will be the x-axis motor 150, the y-axismotor 151 and a z-axis motor 152. In this block diagram, a three-axisaccelerometer 410 provides signal conditioned voltage outputs 415 to asupervisory controller 420.

The controller 420 in the control block 400 is responsible for overallmanagement of the states and operations of the device 105. Again, thecontroller 420 may include circuitry and programming for handling thepositioning of an end-effector, initiating and handling thefunctionality of the end-effector, communications with larger controlsystems responsible for an entire manufacturing line, as well as thecontrol of the motors for maneuvering the device 105 along a track 102.The controller 420 is configured to receive one or more of the controlsignals from the accelerometer 410.

The controller 320 includes a communication and control coupling to eachmotor drive controller 430, 435, and 438 under the control of thesupervisory controller 420. In the embodiment of FIG. 4, the controller420 is coupled to an x-axis drive controller 330, a y-axis motor drivecontroller 335, and a z-axis drive controller 438. This communicativelycoupling may be a serial communications connection such as an RS-232standard serial connection. In other embodiments, this communicativecoupling may be a parallel communication couplings or a wired orwireless Ethernet coupling. In turn, each drive controller 430, 435 and438 is respectively coupled to a drive (motor), e.g., the x-axis drivecontroller 430 is coupled to the x-axis motor 150, the y-axis drivecontroller 435 is coupled to the y-axis motor 151, and the z-axis drivecontroller 438 is coupled to the z-axis motor 152.

In the embodiment of FIG. 4, the x-axis motor 150 and the y-axis motor151 are controlled by digital motion drive controllers 430 and 435,respectively that function as described above with respect to FIG. 3.Further, the z-axis drive controller 438 may be used to control anotherfunction of the device, for example, a drilling motion of an endeffector 110. Thus, a z-axis motor 152 may also be driven based uponcommands from the respective drive controller 438, which in turnreceives system-wide operational commands from the supervisorycontroller 420. Electrical power for the z-axis motor 152 may also bederived from a system-wide DC or AC motor bus (not shown).

Thus, the controller 420 receives control signals 415 from theaccelerometer 410 that influence the control signals from the controller420 sent to each respective drive controller 430, 435, and 438. If theaccelerometer 410 detects that the device 105 is moving from A-B-C (asshown in FIG. 1), or in any other manner where the direction of one ormore of the axes motor force is changing with respect to the directionof the gravitational normal force, the controller 420 adjusts the forcelimitation device 425 of the appropriate drive controller signal so asto account for the changing angle between these respective forcevectors.

The force limitation device (325 of FIG. 3 and 425 of FIG. 4) includes asoftware based algorithm for implementing the respective drive controlsignals to each drive controller and depends on the current-sensingcapabilities of the motors 150, 151, and 152 in the systems 300 and 400.Motor current is directly proportional to motor torque and, therefore,directly proportional to the force vector being applied to move thedevice 105 in a respective x-, y-, or z-axis manner. The drivecontrollers are devices which combine power amplification andclosed-loop motor control logic to generate a control signal for drivinga respective motor. A power amplification circuit electrically sensesthe current being applied to the respective motor coils and thismeasurement can be read directly from the drive controller via thecontroller portion of the drive. The system 300/400 uses the supervisorycontroller 320/420 to read and write current (torque) parameters on themotor drive controllers.

Finally, because the device 105 can be deployed in various spatialorientations (horizontal, vertical, etc.) in a number of differentmanufacturing environments, it is convenient to monitor the spatialorientation of the machine in order to compensate any torque limits thatare imposed on the motor drives in any drive signal corresponding to adirectional force vector. For example, if the device 105 is installed ina vertical orientation, then it will require more force to move thedevice 105 upward along the device's x-axis than it will to move thedevice 105 downward along the device's x-axis. This is because gravity(e.g., the gravitational normal force) is acting in opposite directionsfor upward and downward moves. As another example, if the device 105 isinstalled in a horizontal orientation, then gravity is not acting on thedevice's x-axis, and the force required to move it along the device'sx-axis will be the same in +x and −x directions. This orientationrelative to gravity also occurs for the device's y-axis and thereforethe force limitation device 325/425 monitors x-, y-, and z-axis motorsfor gravity orientation and apply appropriate compensation to the forcelimitation algorithms.

FIG. 5 shows a flow chart 500 of a method for controlling the actuationforce for moving a device or moving the end effector of the system ofFIG. 1 according to an embodiment of the subject matter disclosedherein. The method underlying the flow chart 500 may be implementedusing software modules, hardware modules, or any combination thereof.

In one embodiment, the method utilizes systems and devices as describedwith respect to FIGS. 1-4 under the control of a software-basedalgorithm. As such, two sensor and computing components comprise thedrive controllers, and the supervisory controller receives and generatescontrol signals for controlling various motors. Furthermore, both ofthese computing and control components may be managed through an overallparameter set in the control algorithm called Object Identification(OID). The OID is an extensive set of messages and objects that can beused to define and retrieve the behavior of the device 105 in variousaspects, and there is a subset of OID that are specific to therespective force limitation systems (FLS, hereinafter). In oneembodiment, the FLS OID is managed by the drive controllers while in adifferent embodiment, the FLS OID is managed by the supervisorycontroller. Thus, within the context of the flow chart, a controller mayreceive a control signal, at step 502, to initiate motion in one or moredirection under the control of the one or more motors.

In a first embodiment, the drive controllers (e.g., drive controller 325as shown in FIG. 3) may use several firmware parameters to implement acontrol algorithm for limiting motor current (and therefore motorforce), speed, and position of a respective driven motor. As such, aninitial motor controller current limit may be established at step 504based on current motor position and state. This initial limit may have asafe-start period assuming that any initial movement of any motor willexhibit a start-up current spike. Thus, a motion signal is generated fordriving the specific motor at step 506. After starting, the currentcontrol loop of the drive controller may update periodically at a ratesuitable for the elements being controlled (e.g., every 90 usec). Duringthese periodic updates, the drive controller determines if the currentthreshold is breached at decision step 510 and if the force vector anglehas changed based upon input from the accelerometer at decision step512. If the vector angle has changed, then a new current limit thresholdis established via calculation at step 514. This entire process repeatsperiodically (e.g., every 90 usec) unless the current limit is breached,in which case the drive current signal is interrupted at step 520.

These various control parameters (e.g., the torque limits, the updatetime period, and the like) may be changed and/or updated accordingly viaa supervisory controller or some other controller. These parameters maybe maintained in an embedded memory of a respective drive controller andare sensed periodically (e.g., every 90 usec) via a current controlloop. In this embodiment, the software algorithm may the utilize thefollowing control parameters:

OID MC CURRENT LIMITS—This sets the continuous current limits for themotors through a “current limit” (“CL[1]”) input parameter on the drivecontrollers and an MCCurrentLimit parameter on the supervisorycontroller. After a short period of torque demands higher than CL[1],the torque command limit is decreased to CL[1], thereby enforcing forcelimitation. The CL parameter sets the continuous current limit for thedrive controller.

OID MC PEAK CURRENT LIMITS—This sets the peak current limits for themotors through a “peak limit” (“PL[1]”) input parameter on the drivecontrollers and the MCPeakCurrentLimit parameter on the supervisorycontroller. If the current command (torque demand) has been raised toPL[1] from zero, and after the time specified for peak duration, themotor current command will be limited to CL[1]. The PL parameter setsthe peak current limit for the drive controller.

OID MAX SPEED X and OID MAX SPEED Y—These set the maximum command andfeedback limits of the respective motor through HL, LL, VH, VLparameters on the drive controllers and an MCErrorLimits parameter onthe supervisory controller. These parameters set the following aspectsof the drive controller: high over-speed limit (HL), low under-speedlimit (LL), high velocity command limit (VH), low velocity command limit(VL).

OID POSNERR LIMIT—This sets the position error limits for the motorsthrough a “position error” (“PE”) parameter on the drive controllers andthe MCErrorLimits parameter on the supervisory controller. Positionerror limit can be set as low as 0.001 inch.

OID VELERR LIMIT—This sets the velocity error limits for the motorsthrough a VE parameter on the drive controllers and an MCErrorLimitsparameter on the supervisory controller.

In another embodiment, the supervisory controller may be configured tomanages the following OID parameters to support a force limitationsubsystem.

OID FORCE SENSOR CALIBRATION—This OID is used for calibrating andzeroing the accelerometer's gravity readings. This OID contains thefollowing fields:

int16 ZeroX;

int16 ZeroY;

int16 ZeroZ;

int16 CountsPerGX;

int16 CountsPerGY;

int16 CountsPerGZ;

The “Zero” fields are analog-to-digital values that represent zero forcedue to gravity when that axis is not coaxial with the gravitationalnormal force. The “CountsPerG” fields are analog-to-digital values thatrepresent digital counts per one g of gravity when that axis is coaxialwith the gravitational normal force. The force could be positive ornegative because it could point up or down. For example, with X+up, apositive CountsPerG value should result. The g force is in the oppositedirection, so this is really the number of g to counteract thegravitational normal force.

OID_FORCE_SENSOR—This OID is used to read the resulting forces in thevarious axes. This OID contains the following fields:

float X;

float Y;

float Z;

uint8 ErrFlag;

X, Y, and Z are the real-time gravity forces on those respective axes.If ErrFlag is set to 1, then the numbers are too far from unit vectorscaling and the system will not use them because they are inaccurate insuch a scenario.

OID_FORCE_LIMITS—This OID determines how the FLS adjusts force limits,in the form of motor current, as applied to the motors. This OIDcontains the following fields:

uint16 SensorInterval;

uint8 Active;

uint8 CurrentUnderMethod;

uint16 CurrentOverX;

uint16 CurrentUnderX;

uint16 CurrentOverY;

uint16 CurrentUnderY;

uint16 FullGravX;

uint16 FullGravY;

uint16 FlatForceX;

uint16 FlatForceY;

These individual fields are discussed below, but only for the X axiscomponent for brevity (all axes are monitored and controlled inparallel, identical fashion):

SensorInterval—controls how many milliseconds between readings of theforce sensor. This takes effect even when not applying force limits. Thedefault update rate of 1000 ms is adequate.

Active—When this is set to 0, force limiting caused by current limitingis not active. The drive controllers will still get updated every 1000msec, but will be updated with the force limits that are defined by thecontinuous and peak current limit parameters (CL and PL parameters onthe drive controllers, and MCCurrentLimit and MCPeakCurrentLimit on thesupervisory controller).

CurrentOverX—The number of milliamps (mA) that should be applied as amaximum over gravity amps for X.

CurrentUnderX—The number of milliamps (mA) that should be applied as aminimum under gravity amps for X.

FullGravX—The number of milliamps that would be ideal for a holdingcurrent against 1 g on the x-axis

In yet other embodiments, the control block may operate in one of twomodes; the first mode is an inactive and the second mode is an activemode.

FLS Inactive—This mode is in effect when ForceLimits.Active(OID_FORCE_LIMITS.Active) is set to zero. In this mode, the continuouscurrent limit OID is used to set the CL parameter of a drive controllerand the peak current limit OID is used to set the PL parameter of thedrive controller. Additionally, two more software variables may be usedas the main FLS current (force) limits are set to be 1.0 amp higher (for“positive” moves) and 1.0 amp lower (for “negative” moves) than thepeak, which effectively turns off those limits. Below is pseudocode ofthe software logic used when ForceLimits.Active is zero:

imcl = MCCurrentLimit.fX; // imcl sets CL on Motor Drive Controller impl= MCPeakCurrentLimit.fX; // impl sets PL on Motor Drive Controller iqmh= impl + 1; // iqmh is high limit for FLS, add 1 to disable iqml = −impl− 1; // iqml is low limit for FLS, subtract 1 to disable

FLS Active—This mode is in effect when ForceLimits.Active(OID_FORCE_LIMITS.Active) is set to one. In this mode, the main FLScurrent (force) limits are calculated from the gravity sensor and usedto set the Motor Drive Controller's CL and PL parameters. If the forcesensor error flag is one (ForceSensor.ErrFlag), then it will not set thelimits at all. Below is pseudocode of the software logic used whenForceLimits.Active is one (shown only for the X axis . . . Y axisimplements parallel and analogous software):

// fg is the gravity force from the accelerometer, always less than onefg = g_ForceSensor.fX // set fg to the X component of the multi-axissensor IF (fg > 1.0) THEN fg = 1.0 // f is the force to hold themachine, // with fg as a factor * gravity mA * (1A/1000mA) f = (fg *FullGravX) / 1000.0; // the math depends on gravity (fg) relative to themachine IF (fg >= 0) THEN //Set the torque limits to hold at f,plus/minus the FLS limits iqmh = f + (CurrentOverX / 1000.0); iqml = f −(CurrentUnderX / 1000.0); imcl = iqmh; // imcl sets CL[1] on Motor DriveController impl = iqmh; // impl sets PL[1] on Motor Drive Controller //the Motor Drive Controller's CL and PL are triggered first to detectover-force // so we can disable iqmh by including a margin of 1.0 iqmh =iqmh + 1; ENDIF IF (fg < 0) THEN //Set the torque limits to hold at f,plus/minus the FLS limits iqmh = f + (CurrentUnderX/1000.0); iqml = f −(CurrentOverX/1000.0); imcl = −iqml; // imcl sets CL[1] on Whistle impl= −iqml; // impl sets PL[1] on Whistle // the Motor Drive Controller'sCL and PL are triggered first to detect over-force // so we can disableiqml by including a margin of 1.0 iqml = iqml − 1; ENDIF // enforce thesystem-wide limits IF (imcl > MCCurrentLimit.fX) THEN imcl =MCCurrentLimit.fX; IF (impl > MCPeakCurrentLimit.fX) THEN impl =MCPeakCurrentLimit.fX;

By setting the current, accelerations, and decelerations properly,typical moves will have no problem, but moves which start to requireforces outside of the range specified will be terminated at step 520.

While the subject matter discussed herein is susceptible to variousmodifications and alternative constructions, certain illustratedembodiments thereof are shown in the drawings and have been describedabove in detail. It should be understood, however, that there is nointention to limit the claims to the specific forms disclosed, but onthe contrary, the intention is to cover all modifications, alternativeconstructions, and equivalents falling within the spirit and scope ofthe claims.

What is claimed is:
 1. An end effector, comprising: an actuatorconfigured to generate a force vector to actuate a function in responseto a received control signal, the actuator integral with theend-effector and configured to be maneuvered along a non-linear pathwith the end-effector; a force limiter coupled to the actuator andconfigured to interrupt the actuating if the force vector exceeds afirst threshold; an orientation detector coupled to the actuator andconfigured to detect a change in an angle between a gravitational vectoracting on the end effector and the force vector; wherein the forcelimiter is configured to change the first threshold to a secondthreshold in response to the detected change in the angle; and whereinthe end effector is configured to maneuver on a non-linear track mountedto an underlying manufactured item along the non-linear path.
 2. Theend-effector of claim 1, wherein the actuator comprises a motor formoving the end-effector laterally.
 3. The end-effector of claim 1,wherein the actuator comprises a tool for altering a manufactured item.4. The end-effector of claim 1, further comprising a controllerconfigured to generate the control signal and configured to imitate theactuating.
 5. The end-effector of claim 1, further comprising: a secondactuator configured to generate a second force vector to actuate asecond function in response to a second received control signal; asecond force limiter coupled to the second actuator and configured tointerrupt the actuating if the second force vector exceeds a thirdthreshold.
 6. The end-effector of claim 5 wherein the second forcelimiter is configured to change the third threshold to a fourththreshold in response to a detected change by the orientation detectorin an angle between the second force vector and the gravitationalvector.
 7. The end-effector of claim 1, further comprising: a thirdactuator configured to generate a third force vector to actuate a thirdfunction in response to a third received control signal; a third forcelimiter coupled to the third actuator and configured to interrupt theactuating if the third force vector exceeds a fifth threshold.
 8. Theend-effector of claim 7 wherein the third force limiter is configured tochange the fifth threshold to a sixth threshold in response to adetected change by the orientation detector in an angle between thethird force vector and the gravitational vector.
 9. A system,comprising: a frame having an end effector, the frame movably coupled toa contoured track having a non-linear motion path about an underlyingmanufactured item; a first drive controller coupled to a first drivethat is disposed in the frame, the first drive controller configured togenerate a first drive vector; a second drive controller coupled to asecond drive that is disposed in the frame, the second drive controllerconfigured to generate a second drive vector; and a supervisorycontroller disposed in the frame and configured to generate controlsignals for controlling the first and second drive controllers, thesupervisory controller further including a respective force limitercoupled to each respective drive controller and configured to alter therespective control signal to the respective drive controller if therespective drive vector exceeds a first threshold; an orientationdetector coupled to each respective force limiter and configured todetect a change in an orientation angle between a gravitational vectoracting on the system and a respective drive vector such that the forcelimiter is configured to change the first threshold to a secondthreshold in response to a detected change in the orientation angle. 10.The system of claim 9 wherein the orientation detector comprises athree-directional accelerometer.
 11. The system of claim 9 wherein thefirst and second drives comprises single-phase motors.
 12. The system ofclaim 9 wherein the first drive is configured to move the system along afirst axis of motion and the second drive is configured to move thesystem along a second axis of motion that is different than the firstaxis of motion.
 13. The system of claim 12 wherein the first axiscomprises a contoured path axis and the second axis comprises a linearaxis.
 14. The system of claim 9, further comprising a third drivecontroller coupled to a third drive, the third drive controllerconfigured to generate a third drive vector.
 15. A method, comprising:maneuvering a frame having an actuator for a machine along a non-linearpath along a track mounted to an underlying manufactured item; detectinga first change in orientation of an actuation vector of the actuatorwith respect to a gravitational normal force; adjusting a forcelimitation parameter of the actuator in response to the change inorientation; and arresting actuation of actuator in response to a forcecorresponding to the actuation of the actuator exceeding the forcelimitation parameter.
 16. The method of claim 15, further comprisinginterrupting generating force corresponding to the actuation of theactuator if the force corresponding to the actuation exceeds theadjusted force limitation.
 17. The method of claim 16 wherein theinterrupting comprises disconnecting a power supply bus that issupplying power to the actuator.
 18. The method of claim 15, furthercomprising: detecting a second change in orientation of the actuationvector of the actuator with respect to a gravitational normal forceafter detecting the first change; and adjusting the force limitationparameter of the actuator in response to the second change inorientation.
 19. The method of claim 18, further comprising: determiningthat the force corresponding to the actuation does not exceed the forcelimitation that was adjusted after the first detected change;determining that the force corresponding to the actuation exceeds theforce limitation that was adjusted after the second detected change; andinterrupting the actuation after the second detected change.
 20. Themethod of claim 15, further comprising: detecting a change inorientation of a second actuation vector of a second actuator of themachine with respect to the gravitational normal force; and adjusting aforce limitation parameter of the second actuator in response to thechange in orientation.